home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / language / c68_443b.lzh / MAN / C68.1 next >
Text File  |  1994-07-28  |  48KB  |  1,304 lines

  1. C68(1)              USER COMMANDS               C68(1)
  2.  
  3.  
  4. NAME
  5.  
  6.       c386/c68 - Compile pre-processed C source.
  7.  
  8. SYNOPSIS
  9.  
  10.       c386 [options] [input_file [output_file [listing_file]]]
  11.       c68  [options] [input_file [output_file [listing_file]]]
  12.  
  13. DESCRIPTION
  14.  
  15.       The c386/c68  programs are  publicly available C compilers.
  16.       c386/c68 support    all  language  features  defined  in  the
  17.       original    Kernighan   and  Richie   (K&R)  definition   and
  18.       additionally most  of the  extra features  that have  since
  19.       been defined  by ANSI.   The  user  can  select    K&R  mode
  20.       (which causes  many ANSI    specific features to be disabled)
  21.       or  ANSI     mode  at   run-time.    The   default    is   ANSI
  22.       compatibility mode  as this  is the  mode that  most people
  23.       would wish to use.
  24.  
  25.       The compiler  currently exists  in two major variants - one
  26.       known as    c68 which produces 68000 code and the other known
  27.       as c386  which produces 386 code (as used on top-end PC's).
  28.       The compilers  were originally  developed  to  run  on  the
  29.       MINIX operating  system, but are known to be in wide use on
  30.       other systems.
  31.  
  32.       c386/c68 take  the output of a C pre-processor, and compile
  33.       it  to  give  assembler  source.     If  no  output  file  is
  34.       specified on  the command  line then  c386/c68  writes  the
  35.       generated  assembler   code  to  standard  output.   If  in
  36.       addition there  is no  input file  specified then  c386/c68
  37.       reads the  C source  from standard input.  Finally if a run
  38.       time option  requesting a  listing is  used and  no listing
  39.       file is specified, c68/c386 writes it to standard error.
  40.  
  41.       The options  available to control the behaviour of c386/c68
  42.       are listed  below.  The  options to  c386/c68 can  also  be
  43.       passed as  -Qoption.  This  is to make it easier for the CC
  44.       front-end program  to decide  which options  belong to  the
  45.       c386/c68    program.    Not  all   options    are   necessarily
  46.       available in  all versions  of c68/c386 as some of them are
  47.       dependent on  the settings  in the  c68/c386  configuration
  48.       file at the time that c68/c386 is actually built.
  49.  
  50.       -?    Make c68/c386 display  a message  giving the full
  51.         list of  options  available  in  this  particular
  52.         version  of   c68/c386.    It  also  details  the
  53.         default  settings   for  the   parameters.   This
  54.         option can  be very  useful as it always reflects
  55.         the  choices   of  settings   in   the     c68/c386
  56.         configuration file  that were  actually used when
  57.         generating this version of c68/c386.
  58.  
  59.       -v    Output additional  information during the compile
  60.         process.   If  c68/c386 was  compiled without the
  61.         -DVERBOSE set  then  this  is  merely  a  message
  62.         giving the  version number  of the compiler.   If
  63.         the -DVERBOSE  was used  when c68/c386 was built,
  64.         then additional  progress information  is  output
  65.         during the compile process.
  66.  
  67.         Default:  c386/c68  as supplied  is not  normally
  68.               built with  the  -DVERBOSE  option  and
  69.               merely  provides   the  version  number
  70.               message if -v is used.
  71.  
  72.       -warn=n    Control  the   severity  level     of  warning  and
  73.         diagnostic messages  that will    be output  during
  74.         the compilation  process.  Messages with a higher
  75.         severity value    (i.e. less severe) than the value
  76.         specified will    not be    output.   See  later  for
  77.         more  information   on    the  effect  of  possible
  78.         values for n.
  79.  
  80.         Default: -warn=3
  81.  
  82.       -error=n    Make messages that  are normally only warnings to
  83.         be treated  as errors  instead.  The  value of    n
  84.         specifies what    severity of  messages that  would
  85.         normally be  only  warnings  are  instead  to  be
  86.         treated as  errors.  This option is often used in
  87.         conjunction with the maxerr option..
  88.  
  89.         Default: -error=0
  90.  
  91.       -maxerr=n Sets the maximum error    count to  the value of n.
  92.         This is  the maximum  number of  errors that will
  93.         be reported  before c386/c68  abandons a compile.
  94.         As one    error can  cause others  to occur,  in    a
  95.         cascade effect,  it is    often a  good idea to set
  96.         this to a low value in the region of 10-20.
  97.  
  98.         Default: -maxerr=200
  99.  
  100.       -g    Output    additional   information  for    debugging
  101.         purposes.    Branch    optimisation    is    also
  102.         suppressed  even   if  the  -O    option    has  been
  103.         specified.   Currently    this  option  has  little
  104.         other effect  except to  add line  directives  to
  105.         the generated  assembler output.   This can still
  106.         be useful  if you  wish to  see exactly  which    C
  107.         source lines  caused particular assembler code to
  108.         be generated.
  109.  
  110.         Default:  No debugging information is generated.
  111.  
  112.       -O    Specifies that    maximum branch    code optimisation
  113.         is to  be used.   This can  significantly  reduce
  114.         the  size  of  the  generated  code  with  little
  115.         penalty on  run time.  It can, however, slow down
  116.         the compilation  process.  This option is ignored
  117.         if the -g or -noopt options are specified.
  118.  
  119.         Default:  The    optimisation  triggered  by  this
  120.               option is not performed.
  121.  
  122.       -align    ** STILL UNDER DEVELOPMENT - USE WITH CAUTION **
  123.       -noalign    Align structures and  unions using the same rules
  124.         as applied  to the  member that has the strictest
  125.         alignment rules.
  126.         Default:  -align    for c386
  127.               -noalign  for c68
  128.  
  129.       -code    Specifies whether code is to be generated, or if
  130.       -nocode    this run  is  merely  being  used  to  check  for
  131.         errors in  the source  code.   The  advantage  of
  132.         specifying the    -nocode option    if you are merely
  133.         looking for  errors is    that  c68/c386    will  run
  134.         faster if no attempt is made to generate code.
  135.  
  136.         Default:  -code
  137.  
  138.       -extern    This causes details of external symbols in this
  139.       -noextern module to be  output to the listing device.  This
  140.         is intended  in the  future to    provide the basis
  141.         of a  lint-style facility to provide cross-module
  142.         consistency checking.
  143.  
  144.         Default:  -noextern
  145.  
  146.       -format    Activate additional checks for the 'printf' and
  147.       -noformat 'scanf'  families   of    library   routines.    If
  148.         active, then  the parameters following the format
  149.         string are  checked as    being compatible with the
  150.         format string.
  151.  
  152.         Default:  -format          (check parameters)
  153.  
  154.       -fpu    [c386 only]
  155.       -nofpu    Generate floating  point code  in a form suitable
  156.         for direct  execution by  a maths co-processor if
  157.         -fpu is  used.    If  -nofpu is  used instead, then
  158.         calls  are   made  instead   to  library  support
  159.         routines. This    allows for  software emulation of
  160.         floating point    to be  provided (although this is
  161.         not part of this release of c386).
  162.  
  163.         Default:  -fpu
  164.  
  165.       -frame=n    [c68 only]
  166.         Specify which address  register is  to be used as
  167.         the frame  pointer.   C68  will then  not use for
  168.         any purposes  any registers  with numbers  larger
  169.         than the frame register and less than A7.
  170.  
  171.         Default: -frame=6
  172.  
  173.       -icode    Output    run-time  debugging  information  to  the
  174.         listing file.    Intended mainly for debugging the
  175.         compiler itself.   This option    is only available
  176.         if  c386/c68   was  compiled   with  the  -DICODE
  177.         option.
  178.  
  179.         Default:  c386/c68  as supplied  is  not  set  to
  180.               have this option compiled in.
  181.  
  182.       -lattice    Older versions of Lattice C had partial support
  183.       -nolattice of  prototypes in  which a  variable  number  of
  184.         parameters  was   indicated  by   finishing   the
  185.         parameter list    with a    comma  (rather    than  the
  186.         ANSI style  of using  ,...).   The  use  of  this
  187.         option means  the Lattice  syntax  will  also  be
  188.         accepted.
  189.  
  190.         Default:  -nolattice
  191.  
  192.       -list    Control  listing  of  source file being compiled
  193.       -nolist    (the pre-processor output!).   Any  listing  will
  194.         be put    into the  listing  file.   Any    error  or
  195.         warning messages  are included at the appropriate
  196.         point in the listing.
  197.  
  198.         Default: -nolist
  199.  
  200.       -longdouble    If active, then 'long double' os treated as
  201.       -nolongdouble  being a distinct  type  from  'double'  with
  202.         different support routines.
  203.  
  204.         Default:  -nolongdouble
  205.  
  206.         NOTE. The support  routines for 'long double' are
  207.               not  currently   available  for    use  with
  208.               c386/c68.  This  routine    is  included  for
  209.               future compatibility.
  210.  
  211.       -obsolete   Specifi